package com.zenithmind.classroom.pojo.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Size;
import lombok.Data;

/**
 * 课时更新DTO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@Schema(description = "课时更新DTO")
public class LessonUpdateDTO {

    /**
     * 课时标题
     */
    @Size(min = 1, max = 100, message = "课时标题长度必须在1-100之间")
    @Schema(description = "课时标题", example = "1.1 Java环境搭建")
    private String title;

    /**
     * 课时描述
     */
    @Size(max = 500, message = "课时描述长度不能超过500")
    @Schema(description = "课时描述", example = "学习如何搭建Java开发环境")
    private String description;

    /**
     * 课时内容
     */
    @Schema(description = "课时内容")
    private String content;

    /**
     * 课时类型（1-视频，2-音频，3-文档，4-图片，5-直播）
     */
    @Schema(description = "课时类型（1-视频，2-音频，3-文档，4-图片，5-直播）", example = "1")
    private Integer type;

    /**
     * 媒体资源URL
     */
    @Schema(description = "媒体资源URL", example = "https://example.com/video.mp4")
    private String mediaUrl;

    /**
     * 媒体时长（秒）
     */
    @Schema(description = "媒体时长（秒）", example = "1800")
    private Integer mediaDuration;

    /**
     * 媒体大小（字节）
     */
    @Schema(description = "媒体大小（字节）", example = "104857600")
    private Long mediaSize;

    /**
     * 排序值
     */
    @Schema(description = "排序值", example = "1")
    private Integer sortOrder;

    /**
     * 状态（0-草稿，1-发布，2-下线）
     */
    @Schema(description = "状态（0-草稿，1-发布，2-下线）", example = "1")
    private Integer status;

    /**
     * 是否免费（0-收费，1-免费）
     */
    @Schema(description = "是否免费（0-收费，1-免费）", example = "1")
    private Integer isFree;

    /**
     * 是否试看（0-否，1-是）
     */
    @Schema(description = "是否试看（0-否，1-是）", example = "1")
    private Integer isPreview;

    /**
     * 学习目标
     */
    @Schema(description = "学习目标")
    private String learningObjectives;

    /**
     * 课件资源
     */
    @Schema(description = "课件资源")
    private String resources;

    /**
     * 作业内容
     */
    @Schema(description = "作业内容")
    private String homework;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remarks;
}
